@database BMP.guide @author Gunther Nikl @$VER: BMP.guide 1.3 (11.8.95) @node Main "BMP picture datatype" BMP Picture DataType for Workbench 3.0 or above Written by Gunther Nikl in 1995 FreeWare I. @{" Introduction " link Introduction} II. @{" Installation " link Installation} III. @{" Bugs " link Bugs} IV. @{" Author " link Author} V. @{" History " link History} @endnode @node Introduction This datatype has been created to supersede the bmp.datatype v39.4 from the 3.1 NDK. That datatype was limited to 16 and 256 color pictures, handled only Windows type BMPs (but didn't check for this) and had other quite serious bugs - one of them crashed my Amiga. Sometime ago I had to deal with pictures in BMP format and so I got some information about the format. To use these information I decided to create a datatype since I wanted to know if its possible to use gcc to program one :^) The datatype supports 1, 4 and 8 Bit BMPs. It handles OS/2 1.x, Windows 3.x and OS/2 2.x types of BMPs correctly. The bmp.datatype does currently (?) not support 24 bit and compressed BMPs. Please note: 1.) Some types of BMP pictures are called to be in a 'DIB' format, but these are simple BMPs only with another extension. 2.) Compressed BMPs are usually bigger than the uncomprossed ones (AFAIK) and have often a '.rle' file extension. 3.) Pictures from OS/2 Warp are in the OS/2 2.x format, thus can be handled by this datatype (as long as the pictures are uncompressed of course) @endnode @node Installation The "BMP" datatype distribution should consist of the following files: Classes/DataTypes/bmp.datatype Devs/DataTypes/Windows BMP Devs/DataTypes/Windows BMP.info BMPdt.guide BMPdt.guide.info Source code Copy the "bmp.datatype" into the "SYS:Classes/DataTypes" drawer. The "BMP" and "BMP.info" files should be placed in the "DEVS:DataTypes" drawer. In order to use the datatype doubleclick on the BMP.info file (or reboot the machine). @endnode @node Bugs Currently none known :^) @endnode @node Author The "BMP" datatype was written from scratch by Gunther Nikl using GNU-C 2.7.0 for the C-part and SNMA for the assembler part. All required information to create the datatype were obtained from the sample source code by David N. Junod found in the 3.1 NDK. The author can be reached at: email: gnikl@informatik.uni-rostock.de or snail: Gunther Nikl Ziegendorfer Chaussee 96 Parchim 19370 GERMANY Final note: Use at your own risk! @endnode @node History v40.4 [ previous version was released a little bit to fast ] - forget to correct the normal address in the guide :( - source code cleanup (reduced the executable size :-) v40.3 - fixed a serious bug with 8-bit images (did not use a separate pixel buffer for WritePixelLine8(), but this is *absolutely* required due to a size restriction...) - switched from AllocVec() to exec pool-functions of V39+ - reduced stack usage v40.2 - library bases are now taken directly from the classbase (no additional global library bases required anymore) - fixed a (harmless) bug in the bmpheader decode function - freed a buffer in the image decoder at a wrong place... v40.1 - initial release @endnode